package cn.iocoder.yudao.framework.common.nacos;

import java.nio.charset.StandardCharsets;
import java.util.Base64;

/**
 * <p>
 * nacos中JWT令牌密钥生成器<br>
 * 生成 nacos.core.auth.plugin.nacos.token.secret.key 的值
 * </p>
 * @author Eric
 * @since 2024/10/25 12:16
 */
public class NacosSecretUtil {
    public static void main(String[] args) {
        // 自定义生成JWT令牌的密钥
        String nacosSecret = "nacos_20241025_blockchain_nacos_token";
        // 输出密钥长度，要求不得低于32字符，否则无法启动节点。
        System.out.println("密钥长度》》》" + nacosSecret.length());
        // 密钥进行Base64编码
        System.out.println("密钥Base64编码》》》" + encode(nacosSecret));
    }
    /**
     * 编码
     * @param text
     * @return
     */
    public static String encode(String text) {
        Base64.Encoder encoder = Base64.getEncoder();
        return encoder.encodeToString(text.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * 解码
     * @param encodedText
     * @return
     */
    public static String decode(String encodedText) {
        Base64.Decoder decoder = Base64.getDecoder();
        return new String(decoder.decode(encodedText), StandardCharsets.UTF_8);
    }
}
